In computing, deployment and installation of computer software is typically performed using monolithic software packages. Such packages usually include one or more computer programs and features, at least some of which will not be used, or will rarely be used, in certain installations. Accordingly, many computing devices unnecessarily include unused or rarely-used computer programs and features.
Unfortunately, monolithic installation models often force users of computing devices to pay for unused computer programs and features in order to install and have access to desired computer programs and features. For example, a user of a computing device may be forced to purchase and install a software package including a suite of computer programs, even though the user wishes to utilize only one particular computer program or feature included in the software package.
The problems associated with monolithic software packages are exacerbated for an administrator or organization maintaining a computer system having a large number of computing devices. In such a configuration, installation and maintenance of monolithic software packages can waste significant resources, force payment of software licenses for unwanted or unused computer programs or features, and increase the chances of introducing conflicts between various computer programs into the computer system.